package com.umeox.moto.watch.fitness.utils;

import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Locale;

public class StepUtils {
	
	/**
	 *  人的赤脚长约是身高的1/7  
		单步长在166cm以上的一般为高个  
		身高＝单步长＋1/3足迹长  
		单步长在148cm--166cm以上的一般为中个  
		身高＝单步长＋1/2足迹长 
		单步长在140cm以下的一般为矮个 
		身高＝单步长＋2/3足迹长
		赤脚：cj
		身高：sg  height
		足迹长：zjc
		单步长：dbc
		步长：bc
		系数：x
		cj = 1/7*sg;
		sg = dbc + x*zjc
		dbc = 2bc + zjc
		zjc = cj + 4cm
		@param height 身高
	 */
	public static int getDistance(double height){
		DecimalFormat df = new DecimalFormat("###.0000", new DecimalFormatSymbols(Locale.ROOT));
		double x = Double.parseDouble(df.format(2.0 / 3.0));
		if (height >= 180) {
			x = Double.parseDouble(df.format(1.0 / 3.0));
		} else if (height >= 160) {
			x = Double.parseDouble(df.format(1.0 / 2.0));
		}
		return (int) ((height - (1 + x) * (1.0 / 7.0 * height + 4)) * 1 / 2.0);
	}
	
	/**
	 *  已知体重、距离
		跑步热量（kcal）＝体重（kg）×距离（公里）×1.036
		@param weight 体重
		@param distance 距离
	 */
	public static double getKcal(double weight,double distance){ 
		DecimalFormat df  = new DecimalFormat("###.00", new DecimalFormatSymbols(Locale.ROOT));
		double kcal = weight * distance * 1.036;
		return Double.parseDouble(df.format(kcal));
	}

}
